The present invention relates to computer networks generally and, more particularly, to an apparatus and method for caching network communication parameters.
Fiber Channel (FC) is an integrated set of standards developed by the American National Standards Institute (ANSI). FC allows for a switching network, called a fabric, to intelligently manage interconnections between a number of connection points, called N_Ports. All that is required of the N_Ports is to initiate a point-to-point connection between one port and a port (F_Port) of the fabric. However, the presence of a fabric is not necessary, as FC provides for topologies without a fabric, as in the case of a simple point-to-point link between two N_Ports, or a Fiber-Channel Arbitrated Loop (FC-AL).
A more complete description of the Fiber-Channel standard can be found in the proposed drafts of the American National Standard for Information Systems (ANSI), Fiber-Channel-Physical and Signaling Interface (FC-PH), Jun. 1, 1994, Rev 4.3, Fiber-Channel-Physical and Signaling Interface-2 (FC-PH-2), Sep. 10, 1996, Rev. 7.4, and Fiber-Channel Physical and Signaling Interface-3 (FC-PH-3), Aug. 19, 1997, Rev. 9.3 which are each hereby incorporated by reference in their entirety.
Communication between N_Ports is based on the transfer of data frames and Link_Control frames resulting from information transfer requests from other N_Ports. The primary function of the fabric is to receive frames from a source Nxe2x80x94Port and route the frames to a destination N_Port. According to the FC standard, each N_Port has a permanent unique identifier that is worldwide unique. The permanent unique identifier is called a World Wide Node Name and Port Name (WWN). The WWN is part of a group of values called service parameters. Service-parameters establish the receive and transmit characteristics of an N_Port. The exchange of service parameters is required for communication between N_Ports.
A number of classes of service are supported by the Fiber-Channel standard. These classes specify the method of connection between the N_Ports, the bandwidth available and the delivery integrity of the communication. The classes of service supported by the fabric are specified in the service parameters of the fabric. To communicate with the fabric or another N_Port, an N_Port exchanges service parameters with the fabric or the other N_Port. Initially, communication is according to a fabric login protocol or an N_Port login protocol, respectively. Conversely, when an N_Port wishes to sever communications with the fabric or another N_Port, an F_Port or an N_Port logout protocol is used to request removal of service parameters from the fabric or the other N_Port.
Presently most Fiber Channel networks are based on the Fiber Channel arbitrated loop protocol (FC-AL-2). FC-AL-2 limits the number of devices on a loop to 127. However, another protocol that is becoming more prominent is the Fiber Channel fabric to loop attachment protocol (FC-FLA). A Fiber Channel network using FC-FLA can support 224 devices.
Once a device is logged in, the login persists until an implicit or explicit logout occurs. The number of N_Ports with which an N_Port may be logged in is only limited by the available functionality and resources (e.g., memory) of the N_Port. A large server may potentially communicate with thousands of devices in a fabric environment (i.e., the server port may have to login with thousands of N_Ports).
Referring to FIG. 1, a list 10 of service parameters is shown. The login service parameters include Common Service Parameters, a World Wide Port Name, a World Wide Node/Fabric Name, Class 1, Class 2 and Class 3 service parameters, a Vendor Version Level and sixteen reserved bytes. According to the conventional method, upon completion of the login procedure, the service parameters are stored until the F_Port and the N_Port, or the two N_Ports, log each other out, either explicitly or implicitly. Maintaining the login service parameters of thousands of logged-in N_P is costly in terms of memory storage requirements. An N_Port or an F_Port login service parameter payload is 112 bytes, excluding the command code, and may be as many as 252 bytes, excluding the command code, as set forth in FC-PH-3, Rev. 9.3. For example, an initiator and 126 target devices on a loop would require one hundred twenty-six individual service parameter blocks to be cached. Since the size of the service parameters for a port can be as large as 112 bytes (252 bytes for Rev. 9.3), the initiator on the loop in the present example would have to set aside up to 14,112 bytes (e.g., 126xc3x97112) of memory to store the service parameters.
In a large server environment, an FCP initiator N_Port talking to 1,000 FCP target N_Ports is not unusual. A public loop is able to support up to 224 devices. To store the 1000 associated service parameters alone requires more than 100K Bytes of memory space. To commit over 100K Bytes of memory space for storing service parameters alone is often not acceptable. Especially, when login services are performed at the firmware level.
Likewise, in large networks of computers, computer peripherals and like devices, the interconnected devices often are assigned a unique identifier which defines the identification, characteristics and requirements of the device. These unique identifiers must be maintained in memory, and the storage requirements for doing so can be quite burdensome in terms of system resources.
Without a cache, service parameter memory requirements will normally grow linearly with the number of devices attached. The potential growth of the memory required makes memory management on embedded systems difficult.
A solution is needed for reducing the memory storage overhead required to keep track of network service parameters. Such a solution should reduce the amount of memory needed to maintain the parameters without sacrificing access thereto or functionality.
The present invention concerns an apparatus comprising a first circuit and a second circuit. The first circuit may be configured to obtain a number of service parameters from a network device. The second circuit may be configured to store (i) a first portion of the service parameters in a first group comprising identification parameters, a number of pointers, and a control field and (ii) one or more second portions of the service parameters in one or more second groups, each comprising a communication parameter and a counter. Each of the number of pointers points to a null address or one of the one or more second groups.
The objects, features and advantages of the present invention include providing an apparatus and method that may (i) require less memory to maintain a number of unique device identifiers in memory while not sacrificing access thereto and functionality, and/or (ii) re-acquire login service parameters without disturbing a network environment.